package com.appbee.core.client.jsni;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;

public class JsArrayConverter
{
	public final static native <T extends JavaScriptObject> JsArray<T> create()/*-{return new Array();}-*/;

	public static final <E extends JavaScriptObject> List<E> toList(JsArray<E> array)
	{
		List<E> values = new ArrayList<E>();
		int length = array.length();
		for(int i=0;i<length;i++)
		{
			values.add(array.get(i));
		}
		return values;
		
	}

	public static <T extends JavaScriptObject> void remove(	JsArray<T> array,
															T item)
	{
		for (int i = 0; i < array.length(); i++)
		{
			if (item == array.get(i))
			{
				remove(array, i);
				break;
			}
		}
	}

	public static native <T extends JavaScriptObject> void remove(
			JsArray<T> array, int i)
	/*-{
		array.splice(i,1);
	}-*/;
}
